The present disclosure relates to managing changes to persistent data in third party extensible object management architectures.
An extensible object management architecture provides a software platform on which third party developers can build. Such developers can enhance and extend the architecture by adding new objects and commands. The INDESIGN® software (provided by Adobe Systems Incorporated of San Jose, Calif.) is an example of an extensible automatic runtime object management system, which enables the design and production of professional page layouts. This example system is one in which a command based scheme is used to make changes to objects within the system.
A developer for such an extensible object management system often needs prior knowledge regarding which commands may result in changes to any given persistent object interface, which can pose difficulties for developers who are unaware of changes that can occur as a result of commands built by third party developers. A traditional approach to this problem is to employ a subject-observer mechanism, where other code can be kept informed of potentially relevant changes to objects within the system through the use of an observer who watches for commands that are known to target an object of interest. When a command that is known to affect an object of interest (i.e., because of the nature of the command itself) is seen, the observer can initiate an appropriate reaction to that command, which reaction will vary with the object, the command and the particular implementation.
However, when new commands are added by one developer, problems can occur since other developers may have no knowledge of the new commands. In an attempt to address this issue, some functionality has been added to allow a command to broadcast a notification regarding the general nature of the command, which notification the observers would then see. Thus, the observers might be informed in a general, summary fashion of the types of objects and interfaces the new command affects.